package myzd.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import myzd.domain.enums.OrderSourceType;
import myzd.domain.enums.OrderStatusType;
import myzd.domain.enums.OrderType;
import myzd.domain.response.ReceivePayment;

import java.util.Date;
import java.util.List;

/**
 * @author zks
 * @since 2017/10/18 15:03
 */
@Data
public class OrderDTO {

  /**
   * 工单编号
   */
  private Long id;

  /**
   * 订单状态
   */
  private OrderStatusType status;

  /**
   * 工单的订单模板类型
   */
  private OrderType orderType;

  /**
   * 订单来源
   */
  private OrderSourceType sourceType;

  /**
   * 创建人Id
   */
  private String creatorId;
  /**
   * 创建人名字
   */
  private String creatorName;
  /**
   * 创建人部门
   */
  private String creatorDepartment;
  /**
   * 受理人ID
   */
  private String assigneeId;
  /**
   * 受理人名字
   */
  private String assigneeName;
  /**
   * 受理人部门
   */
  private String assigneeDepartment;
  /**
   * 受理人头像
   */
  private String assigneeAvatar;

  private AppointmentOrder appointmentOrder;

  /**
   * 医学建议的医生列表
   */
  private List<Doctor> recommendDoctors;

  @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
  private Date createdAt;

  @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
  private Date modifiedAt;

  /**
   * 医生收款账户姓名
   */
  private DoctorAccount doctorAccount;

  /**
   * 预约信息
   */
  private AppointmentInfo appointmentInfo;

  /**
   * 工单服务记录
   */
  private List<TrackDTO> trackList;

  /**
   * 支付链接列表
   */
  private List<ReceivePayment> paymentList;

  /**
   * 是否结清
   */
  private Boolean isPaid;

  /**
   * 可生成支付链接金额上限
   */
  private Integer paymentFeeCeiling;

  /**
   * 已支付金额
   */
  private Integer receivedFee;

  /**
   * 未禁用支付链接总金额
   */
  private Integer enabledPaymentFee;

}
